import axios from 'axios';
import { ElMessage } from 'element-plus'  // 引入el 提示框，这个项目里用什么组件库这里引什么

// 设置接口超时时间
axios.defaults.timeout = 6000;

// 请求地址，这里是动态赋值的的环境变量，下一篇会细讲，这里跳过
// @ts-ignore
axios.defaults.baseURL = "http://127.0.0.1:3000/Admin/";

//http request 拦截器
axios.interceptors.request.use(
    config => {
        // 配置请求头
        config.headers = {
            //'Content-Type':'application/x-www-form-urlencoded',   // 传参方式表单
            'Content-Type':'application/json;charset=UTF-8',        // 传参方式json
            //'token':'80c483d59ca86ad0393cf8a98416e2a1'              // 这里自定义配置，这里传的是token
        };
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

//http response 拦截器
axios.interceptors.response.use(
    response => {
        return response;
    },
    error => {
        const {response} = error;
        if (response) {
            // 请求已发出，但是不在2xx的范围
            //showMessage(response.status);           // 传入响应码，匹配响应码对应信息
            return Promise.reject(response.data);
        } else {
            ElMessage.warning('网络连接异常,请稍后再试!');
        }
    }
);

// 封装 GET POST 请求并导出
export function request(url='',params={},type='POST'){
//设置 url params type 的默认值
    return new Promise((resolve,reject)=>{
        let promise
        if( type.toUpperCase()==='GET' ){
            promise = axios({
                url,
                params
            })
        }else if( type.toUpperCase()=== 'POST' ){
            promise = axios({
                method:'POST',
                url,
                data:params
            })
        }

        //处理返回
        promise.then(res=>{
            if(res.data.status == 1){
                ElMessage.success(res.data.msg);
            }else{
                ElMessage.warning(res.data.msg);
            }
            resolve(res)
        }).catch(err=>{
            reject(err)
        })
    })
}







// import axios from "axios";
// //创建一个单例（实例） 运行axios的create方法
// const instance = axios.create({
//     // 配置url
//     baseURL:'http://127.0.0.1:3000/Admin/',
//     // 超时时间
//     timeout:5000
// })
//
// // 拦截器-请求拦截
// instance.interceptors.request.use(config=>{
//     //部分接口需要拿到token的话 这样
//     // let token = localStorage.getItem('item');
//     // if (token){
//     //     config.headers.token=token
//     //     或者
//     //     config.headers={
//     //         '定义token的变量':token
//     //     }
//     // }
//     return config;
// },err => {
//     return Promise.reject(err)
// });
//
// // 拦截器-响应拦截
// instance.interceptors.response.use(res=>{
//     return res;
// },err => {
//     return Promise.reject(err)
// });
//
// // 整体导出
// export default instance
